package Servlet;

import AccesoDatos.datProductos;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Entidades.*;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpSession;

public class SAgregarCarritoCompra extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException, Exception {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

            HttpSession sesion = request.getSession();
            Vector<DetalleDocumento> ListaDetalles = null;

            if (sesion.getAttribute("DetallePedido") != null) {
                //Descargamos la lista de detalles de la sesion en ListaDetalles
                ListaDetalles = (Vector<DetalleDocumento>) sesion.getAttribute("DetallePedido");
            } else {
                //si no existe la sesion se crea el vector de detalles
                ListaDetalles = new Vector<DetalleDocumento>();
            }
            //Obtenemos valores de las cajas de texto
            int codigo = Integer.parseInt(request.getParameter("txtCodigo"));
            int cantidad = Integer.parseInt(request.getParameter("txtCantidad"));

            Productos prod = new Productos();
            prod = datProductos.BuscaProducto(codigo);

            //Crear el objeto Detalle de Pedido
            DetalleDocumento detalle = new DetalleDocumento();
            detalle.setIdDetDocumento(ListaDetalles.size() + 1);
            detalle.setIdProducto(codigo);
            detalle.setCantidad(cantidad);
            detalle.setPrecio(prod.getPrecio());

            //Agregamos el detalle objeto a la lista de detalles
            ListaDetalles.add(detalle);

            //Agregamos la lista de detalles a la session
            sesion.setAttribute("DetallePedido", ListaDetalles);

            response.sendRedirect("Cliente/CarritoCompra.jsp");
        } finally {
            out.close();
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (Exception ex) {
            Logger.getLogger(SAgregarCarritoCompra.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (Exception ex) {
            Logger.getLogger(SAgregarCarritoCompra.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }
}
